using System;
using System.Collections;
using System.Collections.Generic;
using Me.Prettyprint.Hector.Api.Beans;

namespace Me.Prettyprint.Hector.Api.Query
{
    /// <summary>
    /// A query wrapper for the call multiget_slice for a slice of supercolumns
    /// </summary>
    /// <typeparam name="K"></typeparam>
    /// <typeparam name="SN"></typeparam>
    /// <typeparam name="N"></typeparam>
	public interface MultigetSuperSliceCounterQuery<K,SN,N> : Query<CounterSuperRows<K,SN,N>>
	{
        MultigetSuperSliceCounterQuery<K, SN, N> SetKeys(List<K> keys);
        MultigetSuperSliceCounterQuery<K, SN, N> SetColumnFamily(string cf);
        MultigetSuperSliceCounterQuery<K, SN, N> SetRange(SN start, SN finish, bool reversed, int count);
        List<SN> GetColumnNames();
        /// <summary>
        /// Sets the column names to be retrieved by this query
        /// </summary>
        /// <param name="columnNames"></param>
        /// <returns></returns>
        MultigetSuperSliceCounterQuery<K, SN, N> SetColumnNames(List<SN> columnNames);
	}
}